/*
* Sun Public License Notice
*
* The contents of this file are subject to the Sun Public License
* Version 1.0 (the "License"). You may not use this file except in
* compliance with the License. A copy of the License is available at
* http://www.sun.com/
*
* The Original Code is Forte for Java, Community Edition. The Initial
* Developer of the Original Code is Sun Microsystems, Inc. Portions
* Copyright 1997-2000 Sun Microsystems, Inc. All Rights Reserved.
*/
package org.netbeans.editor.ext;
/**
* Various methods related to the java keyword matching
*
* @author Miloslav Metelka
* @version 1.00
*/
public class JavaKeywords {
private JavaKeywords() {
// no instances
}
// Data types
public static final int BOOLEAN = 0;
public static final int BYTE = 1;
public static final int CHAR = 2;
public static final int DOUBLE = 3;
public static final int FLOAT = 4;
public static final int INT = 5;
public static final int LONG = 6;
public static final int SHORT = 7;
// Void type
public static final int VOID = 8;
// Rest of the keywords
public static final int ABSTRACT = 9;
public static final int BREAK = 10;
public static final int CASE = 11;
public static final int CATCH = 12;
public static final int CLASS = 13;
public static final int CONST = 14;
public static final int CONTINUE = 15;
public static final int DEFAULT = 16;
public static final int DO = 17;
public static final int ELSE = 18;
public static final int EXTENDS = 19;
public static final int FALSE = 20;
public static final int FINAL = 21;
public static final int FINALLY = 22;
public static final int FOR = 23;
public static final int GOTO = 24;
public static final int IF = 25;
public static final int IMPLEMENTS = 26;
public static final int IMPORT = 27;
public static final int INSTANCEOF = 28;
public static final int INTERFACE = 29;
public static final int NATIVE = 30;
public static final int NEW = 31;
public static final int NULL = 32;
public static final int PACKAGE = 33;
public static final int PRIVATE = 34;
public static final int PROTECTED = 35;
public static final int PUBLIC = 36;
public static final int RETURN = 37;
public static final int STATIC = 38;
public static final int SUPER = 39;
public static final int SWITCH = 40;
public static final int SYNCHRONIZED = 41;
public static final int THIS = 42;
public static final int THROW = 43;
public static final int THROWS = 44;
public static final int TRANSIENT = 45;
public static final int TRUE = 46;
public static final int TRY = 47;
public static final int VOLATILE = 48;
public static final int WHILE = 49;
/** Checks whether the given keyword is a type.
* @return true when the keyword is a data type.
* It returns false when the given value corresponds to other keyword
* or when it's -1.
*/
public static boolean isType(int keyword) {
return (keyword >= 0 && keyword < VOID);
}
/** Checks whether the given keyword is a type or void.
* @return true when the keyword is a data type or void type.
* It returns false when the given value corresponds to other keyword
* or when it's -1.
*/
public static boolean isTypeOrVoid(int keyword) {
return (keyword >= 0 && keyword <= VOID);
}
public static boolean isKeyword(String buffer) {
return isKeyword(buffer, 0, buffer.length());
}
public static boolean isKeyword(String buffer, int offset, int len) {
return (getKeyword(buffer, offset, len) >= 0);
}
public static int getKeyword(String buffer) {
return getKeyword(buffer, 0, buffer.length());
}
public static boolean isKeyword(char[] buffer) {
return isKeyword(buffer, 0, buffer.length);
}
public static boolean isKeyword(char[] buffer, int offset, int len) {
return (getKeyword(buffer, offset, len) >= 0);
}
public static int getKeyword(char[] buffer) {
return getKeyword(buffer, 0, buffer.length);
}
public static int getKeyword(char[] buffer, int offset, int len) {
if (len > 12)
return -1;
if (len <= 1)
return -1;
switch (buffer[offset++]) {
case 'a':
return (len == 8
&& buffer[offset++] == 'b'
&& buffer[offset++] == 's'
&& buffer[offset++] == 't'
&& buffer[offset++] == 'r'
&& buffer[offset++] == 'a'
&& buffer[offset++] == 'c'
&& buffer[offset++] == 't')
? ABSTRACT : -1;
case 'b':
if (len <= 3)
return -1;
switch (buffer[offset++]) {
case 'o':
return (len == 7
&& buffer[offset++] == 'o'
&& buffer[offset++] == 'l'
&& buffer[offset++] == 'e'
&& buffer[offset++] == 'a'
&& buffer[offset++] == 'n')
? BOOLEAN : -1;
case 'r':
return (len == 5
&& buffer[offset++] == 'e'
&& buffer[offset++] == 'a'
&& buffer[offset++] == 'k')
? BREAK : -1;
case 'y':
return (len == 4
&& buffer[offset++] == 't'
&& buffer[offset++] == 'e')
? BYTE : -1;
default:
return -1;
}
case 'c':
if (len <= 3)
return -1;
switch (buffer[offset++]) {
case 'a':
switch (buffer[offset++]) {
case 's':
return (len == 4
&& buffer[offset++] == 'e')
? CASE : -1;
case 't':
return (len == 5
&& buffer[offset++] == 'c'
&& buffer[offset++] == 'h')
? CATCH : -1;
default:
return -1;
}
case 'h':
return (len == 4
&& buffer[offset++] == 'a'
&& buffer[offset++] == 'r')
? CHAR : -1;
case 'l':
return (len == 5
&& buffer[offset++] == 'a'
&& buffer[offset++] == 's'
&& buffer[offset++] == 's')
? CLASS : -1;
case 'o':
if (len <= 4)
return -1;
if (buffer[offset++] != 'n')
return -1;
switch (buffer[offset++]) {
case 's':
return (len == 5
&& buffer[offset++] == 't')
? CONST : -1;
case 't':
return (len == 8
&& buffer[offset++] == 'i'
&& buffer[offset++] == 'n'
&& buffer[offset++] == 'u'
&& buffer[offset++] == 'e')
? CONTINUE : -1;
default:
return -1;
}
default:
return -1;
}
case 'd':
switch (buffer[offset++]) {
case 'e':
return (len == 7
&& buffer[offset++] == 'f'
&& buffer[offset++] == 'a'
&& buffer[offset++] == 'u'
&& buffer[offset++] == 'l'
&& buffer[offset++] == 't')
? DEFAULT : -1;
case 'o':
if (len == 2)
return DO;
switch (buffer[offset++]) {
case 'u':
return (len == 6
&& buffer[offset++] == 'b'
&& buffer[offset++] == 'l'
&& buffer[offset++] == 'e')
? DOUBLE : -1;
default:
return -1;
}
default:
return -1;
}
case 'e':
if (len <= 3)
return -1;
switch (buffer[offset++]) {
case 'l':
return (len == 4
&& buffer[offset++] == 's'
&& buffer[offset++] == 'e')
? ELSE : -1;
case 'x':
return (len == 7
&& buffer[offset++] == 't'
&& buffer[offset++] == 'e'
&& buffer[offset++] == 'n'
&& buffer[offset++] == 'd'
&& buffer[offset++] == 's')
? EXTENDS : -1;
default:
return -1;
}
case 'f':
if (len <= 2)
return -1;
switch (buffer[offset++]) {
case 'a':
return (len == 5
&& buffer[offset++] == 'l'
&& buffer[offset++] == 's'
&& buffer[offset++] == 'e')
? FALSE : -1;
case 'i':
if (len <= 4)
return -1;
if (buffer[offset++] != 'n'
|| buffer[offset++] != 'a'
|| buffer[offset++] != 'l')
return -1;
if (len == 5)
return FINAL;
if (len <= 6)
return -1;
if (buffer[offset++] != 'l'
|| buffer[offset++] != 'y')
return -1;
if (len == 7)
return FINALLY;
return -1;
case 'l':
return (len == 5
&& buffer[offset++] == 'o'
&& buffer[offset++] == 'a'
&& buffer[offset++] == 't')
? FLOAT : -1;
case 'o':
return (len == 3
&& buffer[offset++] == 'r')
? FOR : -1;
default:
return -1;
}
case 'g':
return (len == 4
&& buffer[offset++] == 'o'
&& buffer[offset++] == 't'
&& buffer[offset++] == 'o')
? GOTO : -1;
case 'i':
switch (buffer[offset++]) {
case 'f':
return (len == 2)
? IF : -1;
case 'm':
if (len <= 5)
return -1;
if (buffer[offset++] != 'p')
return -1;
switch (buffer[offset++]) {
case 'l':
return (len == 10
&& buffer[offset++] == 'e'
&& buffer[offset++] == 'm'
&& buffer[offset++] == 'e'
&& buffer[offset++] == 'n'
&& buffer[offset++] == 't'
&& buffer[offset++] == 's')
? IMPLEMENTS : -1;
case 'o':
return (len == 6
&& buffer[offset++] == 'r'
&& buffer[offset++] == 't')
? IMPORT : -1;
default:
return -1;
}
case 'n':
if (len <= 2)
return -1;
switch (buffer[offset++]) {
case 's':
return (len == 10
&& buffer[offset++] == 't'
&& buffer[offset++] == 'a'
&& buffer[offset++] == 'n'
&& buffer[offset++] == 'c'
&& buffer[offset++] == 'e'
&& buffer[offset++] == 'o'
&& buffer[offset++] == 'f')
? INSTANCEOF : -1;
case 't':
if (len == 3)
return INT;
switch (buffer[offset++]) {
case 'e':
return (len == 9
&& buffer[offset++] == 'r'
&& buffer[offset++] == 'f'
&& buffer[offset++] == 'a'
&& buffer[offset++] == 'c'
&& buffer[offset++] == 'e')
? INTERFACE : -1;
default:
return -1;
}
default:
return -1;
}
default:
return -1;
}
case 'l':
return (len == 4
&& buffer[offset++] == 'o'
&& buffer[offset++] == 'n'
&& buffer[offset++] == 'g')
? LONG : -1;
case 'n':
if (len <= 2)
return -1;
switch (buffer[offset++]) {
case 'a':
return (len == 6
&& buffer[offset++] == 't'
&& buffer[offset++] == 'i'
&& buffer[offset++] == 'v'
&& buffer[offset++] == 'e')
? NATIVE : -1;
case 'e':
return (len == 3
&& buffer[offset++] == 'w')
? NEW : -1;
case 'u':
return (len == 4
&& buffer[offset++] == 'l'
&& buffer[offset++] == 'l')
? NULL : -1;
default:
return -1;
}
case 'p':
if (len <= 5)
return -1;
switch (buffer[offset++]) {
case 'a':
return (len == 7
&& buffer[offset++] == 'c'
&& buffer[offset++] == 'k'
&& buffer[offset++] == 'a'
&& buffer[offset++] == 'g'
&& buffer[offset++] == 'e')
? PACKAGE : -1;
case 'r':
if (len <= 6)
return -1;
switch (buffer[offset++]) {
case 'i':
return (len == 7
&& buffer[offset++] == 'v'
&& buffer[offset++] == 'a'
&& buffer[offset++] == 't'
&& buffer[offset++] == 'e')
? PRIVATE : -1;
case 'o':
return (len == 9
&& buffer[offset++] == 't'
&& buffer[offset++] == 'e'
&& buffer[offset++] == 'c'
&& buffer[offset++] == 't'
&& buffer[offset++] == 'e'
&& buffer[offset++] == 'd')
? PROTECTED : -1;
default:
return -1;
}
case 'u':
return (len == 6
&& buffer[offset++] == 'b'
&& buffer[offset++] == 'l'
&& buffer[offset++] == 'i'
&& buffer[offset++] == 'c')
? PUBLIC : -1;
default:
return -1;
}
case 'r':
return (len == 6
&& buffer[offset++] == 'e'
&& buffer[offset++] == 't'
&& buffer[offset++] == 'u'
&& buffer[offset++] == 'r'
&& buffer[offset++] == 'n')
? RETURN : -1;
case 's':
if (len <= 4)
return -1;
switch (buffer[offset++]) {
case 'h':
return (len == 5
&& buffer[offset++] == 'o'
&& buffer[offset++] == 'r'
&& buffer[offset++] == 't')
? SHORT : -1;
case 't':
return (len == 6
&& buffer[offset++] == 'a'
&& buffer[offset++] == 't'
&& buffer[offset++] == 'i'
&& buffer[offset++] == 'c')
? STATIC : -1;
case 'u':
return (len == 5
&& buffer[offset++] == 'p'
&& buffer[offset++] == 'e'
&& buffer[offset++] == 'r')
? SUPER : -1;
case 'w':
return (len == 6
&& buffer[offset++] == 'i'
&& buffer[offset++] == 't'
&& buffer[offset++] == 'c'
&& buffer[offset++] == 'h')
? SWITCH : -1;
case 'y':
return (len == 12
&& buffer[offset++] == 'n'
&& buffer[offset++] == 'c'
&& buffer[offset++] == 'h'
&& buffer[offset++] == 'r'
&& buffer[offset++] == 'o'
&& buffer[offset++] == 'n'
&& buffer[offset++] == 'i'
&& buffer[offset++] == 'z'
&& buffer[offset++] == 'e'
&& buffer[offset++] == 'd')
? SYNCHRONIZED : -1;
default:
return -1;
}
case 't':
if (len <= 2)
return -1;
switch (buffer[offset++]) {
case 'h':
if (len <= 3)
return -1;
switch (buffer[offset++]) {
case 'i':
return (len == 4
&& buffer[offset++] == 's')
? THIS : -1;
case 'r':
if (len <= 4)
return -1;
if (buffer[offset++] != 'o'
|| buffer[offset++] != 'w')
return -1;
if (len == 5)
return THROW;
if (buffer[offset++] != 's')
return -1;
if (len == 6)
return THROWS;
return -1;
default:
return -1;
}
case 'r':
switch (buffer[offset++]) {
case 'a':
return (len == 9
&& buffer[offset++] == 'n'
&& buffer[offset++] == 's'
&& buffer[offset++] == 'i'
&& buffer[offset++] == 'e'
&& buffer[offset++] == 'n'
&& buffer[offset++] == 't')
? TRANSIENT : -1;
case 'u':
return (len == 4
&& buffer[offset++] == 'e')
? TRUE : -1;
case 'y':
return (len == 3)
? TRY : -1;
default:
return -1;
}
default:
return -1;
}
case 'v':
if (len <= 3)
return -1;
if (buffer[offset++] != 'o')
return -1;
switch (buffer[offset++]) {
case 'i':
return (len == 4
&& buffer[offset++] == 'd')
? VOID : -1;
case 'l':
return (len == 8
&& buffer[offset++] == 'a'
&& buffer[offset++] == 't'
&& buffer[offset++] == 'i'
&& buffer[offset++] == 'l'
&& buffer[offset++] == 'e')
? VOLATILE : -1;
default:
return -1;
}
case 'w':
return (len == 5
&& buffer[offset++] == 'h'
&& buffer[offset++] == 'i'
&& buffer[offset++] == 'l'
&& buffer[offset++] == 'e')
? WHILE : -1;
default:
return -1;
}
}
public static int getKeyword(String buffer, int offset, int len) {
if (len > 12)
return -1;
if (len <= 1)
return -1;
switch (buffer.charAt(offset++)) {
case 'a':
return (len == 8
&& buffer.charAt(offset++) == 'b'
&& buffer.charAt(offset++) == 's'
&& buffer.charAt(offset++) == 't'
&& buffer.charAt(offset++) == 'r'
&& buffer.charAt(offset++) == 'a'
&& buffer.charAt(offset++) == 'c'
&& buffer.charAt(offset++) == 't')
? ABSTRACT : -1;
case 'b':
if (len <= 3)
return -1;
switch (buffer.charAt(offset++)) {
case 'o':
return (len == 7
&& buffer.charAt(offset++) == 'o'
&& buffer.charAt(offset++) == 'l'
&& buffer.charAt(offset++) == 'e'
&& buffer.charAt(offset++) == 'a'
&& buffer.charAt(offset++) == 'n')
? BOOLEAN : -1;
case 'r':
return (len == 5
&& buffer.charAt(offset++) == 'e'
&& buffer.charAt(offset++) == 'a'
&& buffer.charAt(offset++) == 'k')
? BREAK : -1;
case 'y':
return (len == 4
&& buffer.charAt(offset++) == 't'
&& buffer.charAt(offset++) == 'e')
? BYTE : -1;
default:
return -1;
}
case 'c':
if (len <= 3)
return -1;
switch (buffer.charAt(offset++)) {
case 'a':
switch (buffer.charAt(offset++)) {
case 's':
return (len == 4
&& buffer.charAt(offset++) == 'e')
? CASE : -1;
case 't':
return (len == 5
&& buffer.charAt(offset++) == 'c'
&& buffer.charAt(offset++) == 'h')
? CATCH : -1;
default:
return -1;
}
case 'h':
return (len == 4
&& buffer.charAt(offset++) == 'a'
&& buffer.charAt(offset++) == 'r')
? CHAR : -1;
case 'l':
return (len == 5
&& buffer.charAt(offset++) == 'a'
&& buffer.charAt(offset++) == 's'
&& buffer.charAt(offset++) == 's')
? CLASS : -1;
case 'o':
if (len <= 4)
return -1;
if (buffer.charAt(offset++) != 'n')
return -1;
switch (buffer.charAt(offset++)) {
case 's':
return (len == 5
&& buffer.charAt(offset++) == 't')
? CONST : -1;
case 't':
return (len == 8
&& buffer.charAt(offset++) == 'i'
&& buffer.charAt(offset++) == 'n'
&& buffer.charAt(offset++) == 'u'
&& buffer.charAt(offset++) == 'e')
? CONTINUE : -1;
default:
return -1;
}
default:
return -1;
}
case 'd':
switch (buffer.charAt(offset++)) {
case 'e':
return (len == 7
&& buffer.charAt(offset++) == 'f'
&& buffer.charAt(offset++) == 'a'
&& buffer.charAt(offset++) == 'u'
&& buffer.charAt(offset++) == 'l'
&& buffer.charAt(offset++) == 't')
? DEFAULT : -1;
case 'o':
if (len == 2)
return DO;
switch (buffer.charAt(offset++)) {
case 'u':
return (len == 6
&& buffer.charAt(offset++) == 'b'
&& buffer.charAt(offset++) == 'l'
&& buffer.charAt(offset++) == 'e')
? DOUBLE : -1;
default:
return -1;
}
default:
return -1;
}
case 'e':
if (len <= 3)
return -1;
switch (buffer.charAt(offset++)) {
case 'l':
return (len == 4
&& buffer.charAt(offset++) == 's'
&& buffer.charAt(offset++) == 'e')
? ELSE : -1;
case 'x':
return (len == 7
&& buffer.charAt(offset++) == 't'
&& buffer.charAt(offset++) == 'e'
&& buffer.charAt(offset++) == 'n'
&& buffer.charAt(offset++) == 'd'
&& buffer.charAt(offset++) == 's')
? EXTENDS : -1;
default:
return -1;
}
case 'f':
if (len <= 2)
return -1;
switch (buffer.charAt(offset++)) {
case 'a':
return (len == 5
&& buffer.charAt(offset++) == 'l'
&& buffer.charAt(offset++) == 's'
&& buffer.charAt(offset++) == 'e')
? FALSE : -1;
case 'i':
if (len <= 4)
return -1;
if (buffer.charAt(offset++) != 'n'
|| buffer.charAt(offset++) != 'a'
|| buffer.charAt(offset++) != 'l')
return -1;
if (len == 5)
return FINAL;
if (len <= 6)
return -1;
if (buffer.charAt(offset++) != 'l'
|| buffer.charAt(offset++) != 'y')
return -1;
if (len == 7)
return FINALLY;
return -1;
case 'l':
return (len == 5
&& buffer.charAt(offset++) == 'o'
&& buffer.charAt(offset++) == 'a'
&& buffer.charAt(offset++) == 't')
? FLOAT : -1;
case 'o':
return (len == 3
&& buffer.charAt(offset++) == 'r')
? FOR : -1;
default:
return -1;
}
case 'g':
return (len == 4
&& buffer.charAt(offset++) == 'o'
&& buffer.charAt(offset++) == 't'
&& buffer.charAt(offset++) == 'o')
? GOTO : -1;
case 'i':
switch (buffer.charAt(offset++)) {
case 'f':
return (len == 2)
? IF : -1;
case 'm':
if (len <= 5)
return -1;
if (buffer.charAt(offset++) != 'p')
return -1;
switch (buffer.charAt(offset++)) {
case 'l':
return (len == 10
&& buffer.charAt(offset++) == 'e'
&& buffer.charAt(offset++) == 'm'
&& buffer.charAt(offset++) == 'e'
&& buffer.charAt(offset++) == 'n'
&& buffer.charAt(offset++) == 't'
&& buffer.charAt(offset++) == 's')
? IMPLEMENTS : -1;
case 'o':
return (len == 6
&& buffer.charAt(offset++) == 'r'
&& buffer.charAt(offset++) == 't')
? IMPORT : -1;
default:
return -1;
}
case 'n':
if (len <= 2)
return -1;
switch (buffer.charAt(offset++)) {
case 's':
return (len == 10
&& buffer.charAt(offset++) == 't'
&& buffer.charAt(offset++) == 'a'
&& buffer.charAt(offset++) == 'n'
&& buffer.charAt(offset++) == 'c'
&& buffer.charAt(offset++) == 'e'
&& buffer.charAt(offset++) == 'o'
&& buffer.charAt(offset++) == 'f')
? INSTANCEOF : -1;
case 't':
if (len == 3)
return INT;
switch (buffer.charAt(offset++)) {
case 'e':
return (len == 9
&& buffer.charAt(offset++) == 'r'
&& buffer.charAt(offset++) == 'f'
&& buffer.charAt(offset++) == 'a'
&& buffer.charAt(offset++) == 'c'
&& buffer.charAt(offset++) == 'e')
? INTERFACE : -1;
default:
return -1;
}
default:
return -1;
}
default:
return -1;
}
case 'l':
return (len == 4
&& buffer.charAt(offset++) == 'o'
&& buffer.charAt(offset++) == 'n'
&& buffer.charAt(offset++) == 'g')
? LONG : -1;
case 'n':
if (len <= 2)
return -1;
switch (buffer.charAt(offset++)) {
case 'a':
return (len == 6
&& buffer.charAt(offset++) == 't'
&& buffer.charAt(offset++) == 'i'
&& buffer.charAt(offset++) == 'v'
&& buffer.charAt(offset++) == 'e')
? NATIVE : -1;
case 'e':
return (len == 3
&& buffer.charAt(offset++) == 'w')
? NEW : -1;
case 'u':
return (len == 4
&& buffer.charAt(offset++) == 'l'
&& buffer.charAt(offset++) == 'l')
? NULL : -1;
default:
return -1;
}
case 'p':
if (len <= 5)
return -1;
switch (buffer.charAt(offset++)) {
case 'a':
return (len == 7
&& buffer.charAt(offset++) == 'c'
&& buffer.charAt(offset++) == 'k'
&& buffer.charAt(offset++) == 'a'
&& buffer.charAt(offset++) == 'g'
&& buffer.charAt(offset++) == 'e')
? PACKAGE : -1;
case 'r':
if (len <= 6)
return -1;
switch (buffer.charAt(offset++)) {
case 'i':
return (len == 7
&& buffer.charAt(offset++) == 'v'
&& buffer.charAt(offset++) == 'a'
&& buffer.charAt(offset++) == 't'
&& buffer.charAt(offset++) == 'e')
? PRIVATE : -1;
case 'o':
return (len == 9
&& buffer.charAt(offset++) == 't'
&& buffer.charAt(offset++) == 'e'
&& buffer.charAt(offset++) == 'c'
&& buffer.charAt(offset++) == 't'
&& buffer.charAt(offset++) == 'e'
&& buffer.charAt(offset++) == 'd')
? PROTECTED : -1;
default:
return -1;
}
case 'u':
return (len == 6
&& buffer.charAt(offset++) == 'b'
&& buffer.charAt(offset++) == 'l'
&& buffer.charAt(offset++) == 'i'
&& buffer.charAt(offset++) == 'c')
? PUBLIC : -1;
default:
return -1;
}
case 'r':
return (len == 6
&& buffer.charAt(offset++) == 'e'
&& buffer.charAt(offset++) == 't'
&& buffer.charAt(offset++) == 'u'
&& buffer.charAt(offset++) == 'r'
&& buffer.charAt(offset++) == 'n')
? RETURN : -1;
case 's':
if (len <= 4)
return -1;
switch (buffer.charAt(offset++)) {
case 'h':
return (len == 5
&& buffer.charAt(offset++) == 'o'
&& buffer.charAt(offset++) == 'r'
&& buffer.charAt(offset++) == 't')
? SHORT : -1;
case 't':
return (len == 6
&& buffer.charAt(offset++) == 'a'
&& buffer.charAt(offset++) == 't'
&& buffer.charAt(offset++) == 'i'
&& buffer.charAt(offset++) == 'c')
? STATIC : -1;
case 'u':
return (len == 5
&& buffer.charAt(offset++) == 'p'
&& buffer.charAt(offset++) == 'e'
&& buffer.charAt(offset++) == 'r')
? SUPER : -1;
case 'w':
return (len == 6
&& buffer.charAt(offset++) == 'i'
&& buffer.charAt(offset++) == 't'
&& buffer.charAt(offset++) == 'c'
&& buffer.charAt(offset++) == 'h')
? SWITCH : -1;
case 'y':
return (len == 12
&& buffer.charAt(offset++) == 'n'
&& buffer.charAt(offset++) == 'c'
&& buffer.charAt(offset++) == 'h'
&& buffer.charAt(offset++) == 'r'
&& buffer.charAt(offset++) == 'o'
&& buffer.charAt(offset++) == 'n'
&& buffer.charAt(offset++) == 'i'
&& buffer.charAt(offset++) == 'z'
&& buffer.charAt(offset++) == 'e'
&& buffer.charAt(offset++) == 'd')
? SYNCHRONIZED : -1;
default:
return -1;
}
case 't':
if (len <= 2)
return -1;
switch (buffer.charAt(offset++)) {
case 'h':
if (len <= 3)
return -1;
switch (buffer.charAt(offset++)) {
case 'i':
return (len == 4
&& buffer.charAt(offset++) == 's')
? THIS : -1;
case 'r':
if (len <= 4)
return -1;
if (buffer.charAt(offset++) != 'o'
|| buffer.charAt(offset++) != 'w')
return -1;
if (len == 5)
return THROW;
if (buffer.charAt(offset++) != 's')
return -1;
if (len == 6)
return THROWS;
return -1;
default:
return -1;
}
case 'r':
switch (buffer.charAt(offset++)) {
case 'a':
return (len == 9
&& buffer.charAt(offset++) == 'n'
&& buffer.charAt(offset++) == 's'
&& buffer.charAt(offset++) == 'i'
&& buffer.charAt(offset++) == 'e'
&& buffer.charAt(offset++) == 'n'
&& buffer.charAt(offset++) == 't')
? TRANSIENT : -1;
case 'u':
return (len == 4
&& buffer.charAt(offset++) == 'e')
? TRUE : -1;
case 'y':
return (len == 3)
? TRY : -1;
default:
return -1;
}
default:
return -1;
}
case 'v':
if (len <= 3)
return -1;
if (buffer.charAt(offset++) != 'o')
return -1;
switch (buffer.charAt(offset++)) {
case 'i':
return (len == 4
&& buffer.charAt(offset++) == 'd')
? VOID : -1;
case 'l':
return (len == 8
&& buffer.charAt(offset++) == 'a'
&& buffer.charAt(offset++) == 't'
&& buffer.charAt(offset++) == 'i'
&& buffer.charAt(offset++) == 'l'
&& buffer.charAt(offset++) == 'e')
? VOLATILE : -1;
default:
return -1;
}
case 'w':
return (len == 5
&& buffer.charAt(offset++) == 'h'
&& buffer.charAt(offset++) == 'i'
&& buffer.charAt(offset++) == 'l'
&& buffer.charAt(offset++) == 'e')
? WHILE : -1;
default:
return -1;
}
}
}
/*
* Log
* 5 Gandalf 1.4 10/23/99 Ian Formanek NO SEMANTIC CHANGE - Sun
* Microsystems Copyright in File Comment
* 4 Gandalf 1.3 9/30/99 Miloslav Metelka
* 3 Gandalf 1.2 9/15/99 Miloslav Metelka
* 2 Gandalf 1.1 9/10/99 Miloslav Metelka
* 1 Gandalf 1.0 8/27/99 Miloslav Metelka
* $
*/